#ifndef __COMMANDPARSER_
#define __COMMANDPARSER_

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include "Strategy.h"
#include <memory.h>
#include <iostream>

class CommandParser;
using p_commandparser = std::shared_ptr<CommandParser>;

class CommandParser : public cv::CommandLineParser
{
public:
    using cv::CommandLineParser::CommandLineParser;

    // 打印帮助信息
    void if_PrintHelp();
    // 显示影像流
    bool if_Show(const cv::Mat& img);
    // 输出信息
    void if_Output(Strategy s, void(Strategy::*ptr_fun)());
    // 设置计时器
    void if_Set_Counter();
    // 计算FPS
    void if_CountingFPS();

    ~CommandParser(){};
private:
    float _startTime;
};

#endif
